package com.atguigu.daijia.coupon.mapper;

import com.atguigu.daijia.model.entity.coupon.CouponInfo;
import com.atguigu.daijia.model.vo.coupon.NoReceiveCouponVo;
import com.atguigu.daijia.model.vo.coupon.NoUseCouponVo;
import com.atguigu.daijia.model.vo.coupon.UsedCouponVo;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;

import java.util.List;

@Mapper
public interface CouponInfoMapper extends BaseMapper<CouponInfo> {

    /**
     * 分页查询乘客未领取的优惠券列表
     * @param pageParam
     * @param customerId
     * @return
     */
    IPage<NoReceiveCouponVo> findNoReceiveCouponPage(@Param("pageParam") IPage<CouponInfo> pageParam, @Param("customerId") Long customerId);

    /**
     * 分页查询乘客未使用的优惠券列表
     * @param pageParam
     * @param customerId
     * @return
     */
    IPage<NoUseCouponVo> findNoUseCouponPage(@Param("pageParam") IPage<CouponInfo> pageParam, @Param("customerId") Long customerId);

    /**
     * 分页查询乘客已使用的优惠券列表
     * @param pageParam
     * @param customerId
     * @return
     */
    IPage<UsedCouponVo> findUsedCouponPage(@Param("pageParam") IPage<CouponInfo> pageParam, @Param("customerId") Long customerId);

    /**
     * 查询所有乘客未使用的优惠券列表
     * @param customerId
     * @return
     */
    List<NoUseCouponVo> findNoUseCouponList(@Param("customerId") Long customerId);
}
